1. Field of the Invention
The present invention relates generally to computer software and computer network applications. More particularly, the present invention relates to methods and apparatus for dynamically facilitating communication among components throughout a process being performed on a remotely located server, thereby facilitating management of the process among the components.
2. Discussion of Related Art
In today""s technologically advanced society, businesses often support numerous computer systems. Moreover, since multiple sites are often maintained, computer systems are often situated a large distance apart from one another. Therefore, communication among the computer systems is often achieved via a computer network.
Since multiple computer systems within a computer network often perform the same functions and access the same data, a central repository for data and software is commonly maintained. Since numerous users access and depend upon this shared information, it is important that the data and software be reliable. In other words, the data must be up-to-date and the software must function with a minimum of errors. As a result, the shared data is frequently updated to reflect current business strategies and contacts. Similarly, the software is modified to correct problems as they are discovered. However, even when the software is determined to be reliable, new modules are commonly added to improve the functionality of the existing software. Accordingly, new or modified software components are installed and configured frequently in today""s business environment.
In order to improve the functionality of existing software, a new or modified software application must be installed and configured with the appropriate parameters. As one example, companies often create web pages reflecting company and employee data. Since this data is constantly changing, it is important that these web pages be modified and installed with the correct data. As another example, libraries are often maintained to include software functions and procedures. Accordingly, new and modified software components are often added to such libraries so that the components are accessible by users of the network.
Although installation and configuration of a software application are theoretically simple processes, it is often necessary to perform the installation and/or configuration from a remote location. Depending upon the events occurring during the installation and the size of the application being installed or configured, the installation process may be a time-consuming one. Moreover, since the user initiating the installation and the server performing the installation are physically separated, it may be difficult for the user (or another network device or process) to determine the status of completion of the installation process. This is particularly important since the user will respond differently depending upon the feedback obtained during the installation process. For instance, the user may decide to cancel or pause the installation process in reaction to specific events that occur during the installation process. Similarly, an error may occur during the installation process that requires that the installation process be terminated. Furthermore, since other processes may be accessing or providing services to the application being installed, it may be difficult to install the application without interfering with these processes.
In view of the above, it would be beneficial if continual and accurate feedback during a process such as the installation process could be provided so that both sides of the process may maintain control throughout the process. In addition, it would be desirable if events occurring during the process could be communicated to other interested processes and devices.
An invention is described herein that enables communication among a plurality of devices throughout a process that is performed on a remotely located server. This is accomplished through the use of a broker. The broker is adapted for receiving information associated with the process from one or more of the devices as well as communicating the information to selected ones of the devices.
According to one aspect of the invention, the broker is shared among two or more of the devices. More particularly, according to one embodiment, the broker is shared by the tool initiating the process and the server performing the process. Thus, the tool and the server may easily update the broker with information regarding the status of the process. In addition, the tool and the server may actively obtain information from the broker on a periodic basis rather than waiting for the information that is sent from the broker. In this manner, the devices can communicate information regarding management of the process among one another via the broker.
According to another aspect of the invention, the broker communicates information (i.e., updates) to only those devices that have registered as listeners to the broker. In this manner, devices may indicate to the broker that they are interested in the process. The broker then sends the updates (e.g., information recently stored in the broker) to the listeners each time the broker is updated with information regarding the state of the process.
The present invention may be used to facilitate communication among multiple components throughout any process that is performed on a remotely located server. For instance, the present invention may be used to install, de-install, or configure any document or file dynamically on a server. Thus, the shared broker may include information relevant to the configuration process or any other process. Accordingly, the broker may be shared between any number of components to dynamically communicate status information regarding any process, thereby facilitating management of the process.